package com.map;

import java.lang.reflect.Array;
import java.util.*;

/**
 * 集合的嵌套：
 * 案例：有ABCD四个地方，每个人可以选择自己想去的地方，统计投票人数，一个人可以选多个地方
 */
public class MapDemo5 {
    public static void main(String[] args) {
        //创建一个map集合，value是ArrayList集合
        Map<String, List<String>> map=new HashMap<>();

        //创建第一个人的选择信息
        //新建一个List，存放每个人的选择
        List<String> list=new ArrayList<>();
        //使用Collections工具类
        Collections.addAll(list,"A","B");
        //将List放入map集合中
        map.put("凌毅",list);


        //创建第二个人的选择信息
        //新建一个List，存放每个人的选择
        List<String> list2=new ArrayList<>();
        //使用Collections工具类
        Collections.addAll(list2,"A","B","C");
        //将List放入map集合中
        map.put("lingyi",list2);

        //创建第二个人的选择信息
        //新建一个List，存放每个人的选择
        List<String> list3=new ArrayList<>();
        //使用Collections工具类
        Collections.addAll(list3,"D","B","C");
        //将List放入map集合中
        map.put("张三",list3);


        System.out.println(map);
        //{张三=[D, B, C], 凌毅=[A, B], ingyi=[A, B, C]}

        //遍历map进行统计,新建一个map集合
        Map<String,Integer> map2=new HashMap<>();
        //将map中的value都拿出来
        Collection<List<String>> values = map.values();
        System.out.println(values);
        //[[A, B, C], [D, B, C], [A, B]]
        //双重遍历
        for (List<String> value : values) {
            //在遍历里面的集合
            for (String s : value) {
                if (map2.containsKey(s)){
                    map2.put(s,map2.get(s)+1);
                }
                else{
                    map2.put(s,1);
                }
            }
        }
        System.out.println(map2);

    }
}
